').addClass(settings.dotsClass).appendTo(this.$element)).addClass('disabled');
this._controls.$absolute.on('click', 'button', $.proxy(function(e){
var index=$(e.target).parent().is(this._controls.$absolute)
? $(e.target).index():$(e.target).parent().index();
e.preventDefault();
this.to(index, settings.dotsSpeed);
}, this));
/*$el.on('focusin', function(){
$(document).off(".carousel");
$(document).on('keydown.carousel', function(e){
if(e.keyCode==37){
$el.trigger('prev.owl')
}
if(e.keyCode==39){
$el.trigger('next.owl')
}});
});*/
for (override in this._overrides){
this._core[override]=$.proxy(this[override], this);
}};
Navigation.prototype.destroy=function(){
var handler, control, property, override, settings;
settings=this._core.settings;
for (handler in this._handlers){
this.$element.off(handler, this._handlers[handler]);
}
for (control in this._controls){
if(control==='$relative'&&settings.navContainer){
this._controls[control].html('');
}else{
this._controls[control].remove();
}}
for (override in this.overides){
this._core[override]=this._overrides[override];
}
for (property in Object.getOwnPropertyNames(this)){
typeof this[property]!='function'&&(this[property]=null);
}};
Navigation.prototype.update=function(){
var i, j, k,
lower=this._core.clones().length / 2,
upper=lower + this._core.items().length,
maximum=this._core.maximum(true),
settings=this._core.settings,
size=settings.center||settings.autoWidth||settings.dotsData
? 1:settings.dotsEach||settings.items;
if(settings.slideBy!=='page'){
settings.slideBy=Math.min(settings.slideBy, settings.items);
}
if(settings.dots||settings.slideBy=='page'){
this._pages=[];
for (i=lower, j=0, k=0; i < upper; i++){
if(j >=size||j===0){
this._pages.push({
start: Math.min(maximum, i - lower),
end: i - lower + size - 1
});
if(Math.min(maximum, i - lower)===maximum){
break;
}
j=0, ++k;
}
j +=this._core.mergers(this._core.relative(i));
}}
};
Navigation.prototype.draw=function(){
var difference,
settings=this._core.settings,
disabled=this._core.items().length <=settings.items,
index=this._core.relative(this._core.current()),
loop=settings.loop||settings.rewind;
this._controls.$relative.toggleClass('disabled', !settings.nav||disabled);
if(settings.nav){
this._controls.$previous.toggleClass('disabled', !loop&&index <=this._core.minimum(true));
this._controls.$next.toggleClass('disabled', !loop&&index >=this._core.maximum(true));
}
this._controls.$absolute.toggleClass('disabled', !settings.dots||disabled);
if(settings.dots){
difference=this._pages.length - this._controls.$absolute.children().length;
if(settings.dotsData&&difference!==0){
this._controls.$absolute.html(this._templates.join(''));
}else if(difference > 0){
this._controls.$absolute.append(new Array(difference + 1).join(this._templates[0]));
}else if(difference < 0){
this._controls.$absolute.children().slice(difference).remove();
}
this._controls.$absolute.find('.active').removeClass('active');
this._controls.$absolute.children().eq($.inArray(this.current(), this._pages)).addClass('active');
}};
Navigation.prototype.onTrigger=function(event){
var settings=this._core.settings;
event.page={
index: $.inArray(this.current(), this._pages),
count: this._pages.length,
size: settings&&(settings.center||settings.autoWidth||settings.dotsData
? 1:settings.dotsEach||settings.items)
};};
Navigation.prototype.current=function(){
var current=this._core.relative(this._core.current());
return $.grep(this._pages, $.proxy(function(page, index){
return page.start <=current&&page.end >=current;
}, this)).pop();
};
Navigation.prototype.getPosition=function(successor){
var position, length,
settings=this._core.settings;
if(settings.slideBy=='page'){
position=$.inArray(this.current(), this._pages);
length=this._pages.length;
successor ? ++position:--position;
position=this._pages[((position % length) + length) % length].start;
}else{
position=this._core.relative(this._core.current());
length=this._core.items().length;
successor ? position +=settings.slideBy:position -=settings.slideBy;
}
return position;
};
Navigation.prototype.next=function(speed){
$.proxy(this._overrides.to, this._core)(this.getPosition(true), speed);
};
Navigation.prototype.prev=function(speed){
$.proxy(this._overrides.to, this._core)(this.getPosition(false), speed);
};
Navigation.prototype.to=function(position, speed, standard){
var length;
if(!standard&&this._pages.length){
length=this._pages.length;
$.proxy(this._overrides.to, this._core)(this._pages[((position % length) + length) % length].start, speed);
}else{
$.proxy(this._overrides.to, this._core)(position, speed);
}};
$.fn.owlCarousel.Constructor.Plugins.Navigation=Navigation;
})(window.Zepto||window.jQuery, window, document);
;(function($, window, document, undefined){
'use strict';
var Hash=function(carousel){
this._core=carousel;
this._hashes={};
this.$element=this._core.$element;
this._handlers={
'initialized.owl.carousel': $.proxy(function(e){
if(e.namespace&&this._core.settings.startPosition==='URLHash'){
$(window).trigger('hashchange.owl.navigation');
}}, this),
'prepared.owl.carousel': $.proxy(function(e){
if(e.namespace){
var hash=$(e.content).find('[data-hash]').addBack('[data-hash]').attr('data-hash');
if(!hash){
return;
}
this._hashes[hash]=e.content;
}}, this),
'changed.owl.carousel': $.proxy(function(e){
if(e.namespace&&e.property.name==='position'){
var current=this._core.items(this._core.relative(this._core.current())),
hash=$.map(this._hashes, function(item, hash){
return item===current ? hash:null;
}).join();
if(!hash||window.location.hash.slice(1)===hash){
return;
}
window.location.hash=hash;
}}, this)
};
this._core.options=$.extend({}, Hash.Defaults, this._core.options);
this.$element.on(this._handlers);
$(window).on('hashchange.owl.navigation', $.proxy(function(e){
var hash=window.location.hash.substring(1),
items=this._core.$stage.children(),
position=this._hashes[hash]&&items.index(this._hashes[hash]);
if(position===undefined||position===this._core.current()){
return;
}
this._core.to(this._core.relative(position), false, true);
}, this));
};
Hash.Defaults={
URLhashListener: false
};
Hash.prototype.destroy=function(){
var handler, property;
$(window).off('hashchange.owl.navigation');
for (handler in this._handlers){
this._core.$element.off(handler, this._handlers[handler]);
}
for (property in Object.getOwnPropertyNames(this)){
typeof this[property]!='function'&&(this[property]=null);
}};
$.fn.owlCarousel.Constructor.Plugins.Hash=Hash;
})(window.Zepto||window.jQuery, window, document);
;(function($, window, document, undefined){
var style=$('
').get(0).style,
prefixes='Webkit Moz O ms'.split(' '),
events={
transition: {
end: {
WebkitTransition: 'webkitTransitionEnd',
MozTransition: 'transitionend',
OTransition: 'oTransitionEnd',
transition: 'transitionend'
}},
animation: {
end: {
WebkitAnimation: 'webkitAnimationEnd',
MozAnimation: 'animationend',
OAnimation: 'oAnimationEnd',
animation: 'animationend'
}}
},
tests={
csstransforms: function(){
return !!test('transform');
},
csstransforms3d: function(){
return !!test('perspective');
},
csstransitions: function(){
return !!test('transition');
},
cssanimations: function(){
return !!test('animation');
}};
function test(property, prefixed){
var result=false,
upper=property.charAt(0).toUpperCase() + property.slice(1);
$.each((property + ' ' + prefixes.join(upper + ' ') + upper).split(' '), function(i, property){
if(style[property]!==undefined){
result=prefixed ? property:true;
return false;
}});
return result;
}
function prefixed(property){
return test(property, true);
}
if(tests.csstransitions()){
$.support.transition=new String(prefixed('transition'))
$.support.transition.end=events.transition.end[ $.support.transition ];
}
if(tests.cssanimations()){
$.support.animation=new String(prefixed('animation'))
$.support.animation.end=events.animation.end[ $.support.animation ];
}
if(tests.csstransforms()){
$.support.transform=new String(prefixed('transform'));
$.support.transform3d=tests.csstransforms3d();
}})(window.Zepto||window.jQuery, window, document);
(function ($){
var STYLE_SETTING='style="width:{width};height:{height};"';
var PREVIEW_LABEL=' {caption}
\n';
var OBJECT_PARAMS=' \n' +
' \n' +
' \n' +
' \n' +
' \n'+
' \n';
var DEFAULT_PREVIEW='\n' +
'
\n' +
' ';
var defaultLayoutTemplates={
main1: '{preview}\n' +
'',
main2: '{preview}\n{remove}\n{upload}\n{browse}\n',
preview: '\n' +
'
×
\n' +
'
\n' +
'
' +
'
\n' +
'
\n' +
'
',
caption: '',
modal: '\n' +
'
\n' +
'
\n' +
' \n' +
'
\n' +
' \n' +
'
\n' +
'
\n' +
'
\n' +
'
\n'
};
var defaultPreviewTypes=['image', 'html', 'text', 'video', 'audio', 'flash', 'object'];
var defaultPreviewTemplates={
generic: '\n' +
' {content}\n' +
'
\n',
html: '\n' +
' \n' + PREVIEW_LABEL +
'
',
image: '\n' +
'
\n' +
'
\n',
text: '\n' +
'
\n' +
' {data}\n' +
'
\n' +
'
\n',
video: '\n' +
' \n' + PREVIEW_LABEL +
'
\n',
audio: '\n' +
'
\n' + PREVIEW_LABEL +
'
\n',
flash: '\n' +
' \n' + PREVIEW_LABEL +
'
\n',
object: '\n' +
'
\n' + PREVIEW_LABEL +
'
',
other: '\n' +
' ' + DEFAULT_PREVIEW + '\n' + PREVIEW_LABEL +
'
',
};
var defaultPreviewSettings={
image: {width: "auto", height: "160px"},
html: {width: "320px", height: "180px"},
text: {width: "160px", height: "160px"},
video: {width: "320px", height: "240px"},
audio: {width: "320px", height: "80px"},
flash: {width: "320px", height: "240px"},
object: {width: "320px", height: "300px"},
other: {width: "160px", height: "120px"}};
var defaultFileTypeSettings={
image: function(vType, vName){
return (typeof vType!=="undefined") ? vType.match('image.*'):vName.match(/\.(gif|png|jpe?g)$/i);
},
html: function(vType, vName){
return (typeof vType!=="undefined") ? vType=='text/html':vName.match(/\.(htm|html)$/i);
},
text: function(vType, vName){
return typeof vType!=="undefined"&&vType.match('text.*')||vName.match(/\.(txt|md|csv|nfo|php|ini)$/i);
},
video: function (vType, vName){
return typeof vType!=="undefined"&&vType.match(/\.video\/(ogg|mp4|webm)$/i)||vName.match(/\.(og?|mp4|webm)$/i);
},
audio: function (vType, vName){
return typeof vType!=="undefined"&&vType.match(/\.audio\/(ogg|mp3|wav)$/i)||vName.match(/\.(ogg|mp3|wav)$/i);
},
flash: function (vType, vName){
return typeof vType!=="undefined"&&vType=='application/x-shockwave-flash'||vName.match(/\.(swf)$/i);
},
object: function (vType, vName){
return true;
},
other: function (vType, vName){
return true;
},
};
var isEmpty=function (value, trim){
return value===null||value===undefined||value==[]
|| value===''||trim&&$.trim(value)==='';
},
isArray=function (a){
return Array.isArray(a)||Object.prototype.toString.call(a)==='[object Array]';
},
isSet=function (needle, haystack){
return (typeof haystack=='object'&&needle in haystack);
},
getValue=function (options, param, value){
return (isEmpty(options)||isEmpty(options[param])) ? value:options[param];
},
getElement=function (options, param, value){
return (isEmpty(options)||isEmpty(options[param])) ? value:$(options[param]);
},
uniqId=function (){
return Math.round(new Date().getTime() + (Math.random() * 100));
},
hasFileAPISupport=function (){
return window.File&&window.FileReader&&window.FileList&&window.Blob;
},
htmlEncode=function(str){
return String(str)
.replace(/&/g, '&')
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(//g, '>');
},
vUrl=window.URL||window.webkitURL;
var FileInput=function (element, options){
this.$element=$(element);
if(hasFileAPISupport()){
this.init(options);
this.listen();
}else{
this.$element.removeClass('file-loading');
}};
FileInput.prototype={
constructor: FileInput,
init: function (options){
var self=this;
self.reader=null;
self.showCaption=options.showCaption;
self.showPreview=options.showPreview;
self.maxFileSize=options.maxFileSize;
self.maxFileCount=options.maxFileCount;
self.msgSizeTooLarge=options.msgSizeTooLarge;
self.msgFilesTooMany=options.msgFilesTooMany;
self.msgFileNotFound=options.msgFileNotFound;
self.msgFileNotReadable=options.msgFileNotReadable;
self.msgFilePreviewAborted=options.msgFilePreviewAborted;
self.msgFilePreviewError=options.msgFilePreviewError;
self.msgValidationError=options.msgValidationError;
self.msgErrorClass=options.msgErrorClass;
self.initialDelimiter=options.initialDelimiter;
self.initialPreview=options.initialPreview;
self.initialCaption=options.initialCaption;
self.initialPreviewCount=options.initialPreviewCount;
self.initialPreviewContent=options.initialPreviewContent;
self.overwriteInitial=options.overwriteInitial;
self.layoutTemplates=options.layoutTemplates;
self.previewTemplates=options.previewTemplates;
self.allowedPreviewTypes=isEmpty(options.allowedPreviewTypes) ? defaultPreviewTypes:options.allowedPreviewTypes;
self.allowedPreviewMimeTypes=options.allowedPreviewMimeTypes;
self.allowedFileTypes=options.allowedFileTypes;
self.allowedFileExtensions=options.allowedFileExtensions;
self.previewSettings=options.previewSettings;
self.fileTypeSettings=options.fileTypeSettings;
self.showRemove=options.showRemove;
self.showUpload=options.showUpload;
self.captionClass=options.captionClass;
self.previewClass=options.previewClass;
self.mainClass=options.mainClass;
self.mainTemplate=self.showCaption ? self.getLayoutTemplate('main1'):self.getLayoutTemplate('main2');
self.captionTemplate=self.getLayoutTemplate('caption');
self.previewGenericTemplate=self.getPreviewTemplate('generic');
self.browseLabel=options.browseLabel;
self.browseIcon=options.browseIcon;
self.browseClass=options.browseClass;
self.removeLabel=options.removeLabel;
self.removeIcon=options.removeIcon;
self.removeClass=options.removeClass;
self.uploadLabel=options.uploadLabel;
self.uploadIcon=options.uploadIcon;
self.uploadClass=options.uploadClass;
self.uploadUrl=options.uploadUrl;
self.msgLoading=options.msgLoading;
self.msgProgress=options.msgProgress;
self.msgSelected=options.msgSelected;
self.msgInvalidFileType=options.msgInvalidFileType;
self.msgInvalidFileExtension=options.msgInvalidFileExtension;
self.previewFileType=options.previewFileType;
self.wrapTextLength=options.wrapTextLength;
self.wrapIndicator=options.wrapIndicator;
self.isError=false;
self.isDisabled=self.$element.attr('disabled')||self.$element.attr('readonly');
if(isEmpty(self.$element.attr('id'))){
self.$element.attr('id', uniqId());
}
if(typeof self.$container=='undefined'){
self.$container=self.createContainer();
}else{
self.refreshContainer();
}
self.$captionContainer=getElement(options, 'elCaptionContainer', self.$container.find('.file-caption'));
self.$caption=getElement(options, 'elCaptionText', self.$container.find('.file-caption-name'));
self.$previewContainer=getElement(options, 'elPreviewContainer', self.$container.find('.file-preview'));
self.$preview=getElement(options, 'elPreviewImage', self.$container.find('.file-preview-thumbnails'));
self.$previewStatus=getElement(options, 'elPreviewStatus', self.$container.find('.file-preview-status'));
self.$errorContainer=getElement(options, 'elErrorContainer', self.$previewContainer.find('.kv-fileinput-error'));
if(!isEmpty(self.msgErrorClass)){
self.$errorContainer.removeClass(self.msgErrorClass).addClass(self.msgErrorClass);
}
self.$errorContainer.hide();
var content=self.initialPreview;
self.initialPreviewCount=isArray(content) ? content.length:(content.length > 0 ? content.split(self.initialDelimiter).length:0)
self.initPreview();
self.original={
preview: self.$preview.html(),
caption: self.$caption.html()
};
self.options=options;
self.$element.removeClass('file-loading');
},
getLayoutTemplate: function(t){
var self=this;
return isSet(t, self.layoutTemplates) ? self.layoutTemplates[t]:defaultLayoutTemplates[t];
},
getPreviewTemplate: function(t){
var self=this;
return isSet(t, self.previewTemplates) ? self.previewTemplates[t]:defaultPreviewTemplates[t];
},
listen: function (){
var self=this, $el=self.$element, $cap=self.$captionContainer, $btnFile=self.$btnFile;
$el.on('change', $.proxy(self.change, self));
$btnFile.on('click', function (ev){
self.clear(false);
$cap.focus();
});
$el.closest('form').on('reset', $.proxy(self.reset, self));
self.$container.on('click', '.fileinput-remove:not([disabled])', $.proxy(self.clear, self));
},
refresh: function (options){
var self=this, params=(arguments.length) ? $.extend(self.options, options):self.options;
self.init(params);
},
initPreview: function (){
var self=this, html='', content=self.initialPreview, len=self.initialPreviewCount,
cap=self.initialCaption.length, previewId="preview-" + uniqId(),
caption=(cap > 0) ? self.initialCaption:self.msgSelected.replace(/\{n\}/g, len),
title=$(caption).text();
if(isArray(content)&&len > 0){
for (var i=0; i < len; i++){
previewId +='-' + i;
html +=self.previewGenericTemplate.replace(/\{previewId\}/g, previewId).replace(/\{content\}/g,
content[i]);
}
if(len > 1&&cap==0){
caption=self.msgSelected.replace(/\{n\}/g, len);
}}else{
if(len > 0){
var fileList=content.split(self.initialDelimiter);
for (var i=0; i < len; i++){
previewId +='-' + i;
html +=self.previewGenericTemplate.replace(/\{previewId\}/g, previewId).replace(/\{content\}/g,
fileList[i]);
}
if(len > 1&&cap==0){
caption=self.msgSelected.replace(/\{n\}/g, len);
}}else{
if(cap > 0){
self.$caption.html(caption);
self.$captionContainer.attr('title', title);
return;
}else{
return;
}}
}
self.initialPreviewContent=html;
self.$preview.html(html);
self.$caption.html(caption);
self.$captionContainer.attr('title', title);
self.$container.removeClass('file-input-new');
},
clearObjects: function(){
var self=this, $preview=self.$preview;
$preview.find('video audio').each(function(){
this.pause();
delete(this);
$(this).remove();
});
$preview.find('img object div').each(function(){
delete(this);
$(this).remove();
});
},
clearFileInput: function(){
var self=this, $el=self.$element;
if(isEmpty($el.val())){
return;
}
if(/MSIE/.test(navigator.userAgent)){
var $frm1=$el.closest('form');
if($frm1.length){
$el.wrap('